{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#51CTO课程频道：http://edu.51cto.com/lecturer/index/user_id-12330098.html\n",
    "#优酷频道：http://i.youku.com/sdxxqbf\n",
    "#微信公众号：深度学习与神经网络\n",
    "#Github：https://github.com/Qinbf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nX5FraN8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x201470bad30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x20148d0ad30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nDEMq/B9nCvz1JpnNSwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x20148ddea20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import neurolab as nl\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 0 1 2-----------16*8   \n",
    "target =  np.array([[0,0,0,0,0,0,0,0,\n",
    "                     0,0,0,1,1,0,0,0,\n",
    "                     0,0,1,0,0,1,0,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,0,1,0,0,1,0,0,\n",
    "                     0,0,0,1,1,0,0,0,\n",
    "                     0,0,0,0,0,0,0,0],\n",
    "           \n",
    "                    [0,0,0,0,0,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,1,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,0,1,0,0,0,\n",
    "                     0,0,0,1,1,1,0,0,\n",
    "                     0,0,0,0,0,0,0,0],   \n",
    "           \n",
    "                    [0,0,0,0,0,0,0,0,\n",
    "                     0,0,1,1,1,1,0,0,\n",
    "                     0,1,1,0,0,1,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,0,0,0,0,1,1,0,\n",
    "                     0,0,0,0,1,1,0,0,\n",
    "                     0,0,0,1,1,0,0,0,\n",
    "                     0,0,1,1,0,0,0,0,\n",
    "                     0,1,1,0,0,0,0,0,\n",
    "                     0,1,0,0,0,0,0,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,0,0,0,0,1,0,\n",
    "                     0,1,1,1,1,1,1,0,\n",
    "                     0,0,0,0,0,0,0,0]])\n",
    "\n",
    "#画图函数\n",
    "def visualized (data, title): \n",
    "    fig, ax = plt.subplots()\n",
    "    ax.imshow(data, cmap=plt.cm.gray, interpolation='nearest')\n",
    "    ax.set_title(title)\n",
    "    plt.show()\n",
    "\n",
    "#显示012\n",
    "for i in range(len(target)):\n",
    "    visualized(np.reshape(target[i], (16,8)), i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2014707f898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\ng2GW+H9T0E0J73bx6wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x201470acef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x20148dfe2e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#hopfield网络的值是1和-1\n",
    "target[target == 0] = -1\n",
    "\n",
    "#创建一个hopfield神经网络，吸引子为target(012)\n",
    "net = nl.net.newhop(target)\n",
    "\n",
    "\n",
    "#定义3个测试数据\n",
    "test_data1 =np.asfarray([0,0,0,0,0,0,0,0,\n",
    "                         0,0,0,1,1,0,1,0,\n",
    "                         0,0,1,0,0,1,0,0,\n",
    "                         0,1,0,0,0,0,1,0,\n",
    "                         0,1,0,0,1,0,1,0,\n",
    "                         0,1,0,0,0,0,1,0,\n",
    "                         0,1,0,0,0,0,1,0,\n",
    "                         0,1,0,1,0,0,1,0,\n",
    "                         0,1,0,0,0,0,1,0,\n",
    "                         0,1,0,0,1,0,1,0,\n",
    "                         0,1,0,0,0,0,1,0,\n",
    "                         0,1,0,0,0,0,1,0,\n",
    "                         0,1,0,1,0,0,1,0,\n",
    "                         0,0,1,0,0,1,0,0,\n",
    "                         0,0,1,1,1,0,0,0,\n",
    "                         0,0,0,0,0,0,0,0])\n",
    "\n",
    "test_data2 =np.asfarray([0,0,0,1,0,0,0,0,\n",
    "                         0,0,0,0,1,0,0,0,\n",
    "                         0,0,0,1,1,0,0,0,\n",
    "                         0,0,0,0,0,0,1,0,\n",
    "                         0,1,0,0,1,0,0,0,\n",
    "                         0,0,0,0,1,0,0,1,\n",
    "                         0,0,0,1,1,0,1,0,\n",
    "                         0,1,0,0,1,0,1,0,\n",
    "                         0,0,0,0,1,0,0,0,\n",
    "                         0,0,1,0,1,0,1,0,\n",
    "                         0,0,0,1,1,0,0,0,\n",
    "                         0,0,0,0,1,0,0,0,\n",
    "                         0,0,0,0,1,0,0,1,\n",
    "                         0,0,1,0,1,0,0,0,\n",
    "                         0,0,0,1,1,1,0,0,\n",
    "                         0,1,0,0,0,0,0,0])\n",
    "\n",
    "test_data3 =np.asfarray([0,0,0,1,0,0,0,0,\n",
    "                         0,0,0,0,1,0,0,0,\n",
    "                         0,0,0,1,1,0,0,0,\n",
    "                         0,0,0,1,0,0,1,0,\n",
    "                         0,1,0,0,0,0,0,0,\n",
    "                         0,0,0,0,1,0,0,1,\n",
    "                         0,0,0,1,0,0,1,0,\n",
    "                         0,1,0,0,1,0,1,0,\n",
    "                         0,0,0,0,1,0,0,0,\n",
    "                         0,0,1,0,0,0,1,0,\n",
    "                         0,0,0,1,1,0,0,0,\n",
    "                         0,0,0,0,1,0,0,0,\n",
    "                         0,0,0,0,0,0,0,1,\n",
    "                         0,0,1,0,0,0,0,0,\n",
    "                         0,0,0,0,1,1,0,0,\n",
    "                         0,1,0,0,0,0,0,0])\n",
    "\n",
    "#显示测试数据\n",
    "visualized(np.reshape(test_data1, (16,8)), \"test_data1\")\n",
    "visualized(np.reshape(test_data2, (16,8)), \"test_data2\")\n",
    "visualized(np.reshape(test_data3, (16,8)), \"test_data3\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test_data is : 0\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x20148d66ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test_data is : 1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x20148f53cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2014a050fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_data1[test_data1==0] = -1\n",
    "#把测试数据输入hopfield网络，得到输出\n",
    "out1 = net.sim([test_data1])\n",
    "#判断测试数据的数字是多少\n",
    "for i in range(len(target)):\n",
    "    if((out1 == target[i]).all()):\n",
    "        print(\"test_data is :\",i)\n",
    "#显示输出\n",
    "visualized(np.reshape(out1, (16,8)), \"output1\")        \n",
    "\n",
    "\n",
    "test_data2[test_data2==0] = -1\n",
    "#把测试数据输入hopfield网络，得到输出\n",
    "out2 = net.sim([test_data2])\n",
    "#判断测试数据的数字是多少\n",
    "for i in range(len(target)):\n",
    "    if((out2 == target[i]).all()):\n",
    "        print(\"test_data is :\",i)\n",
    "#显示输出\n",
    "visualized(np.reshape(out2, (16,8)), \"output2\")        \n",
    "\n",
    "\n",
    "test_data3[test_data3==0] = -1\n",
    "#把测试数据输入hopfield网络，得到输出\n",
    "out3 = net.sim([test_data3])\n",
    "#判断测试数据的数字是多少\n",
    "for i in range(len(target)):\n",
    "    if((out3 == target[i]).all()):\n",
    "        print(\"test_data is :\",i)\n",
    "#显示输出\n",
    "visualized(np.reshape(out3, (16,8)), \"output3\") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
